Node.js Websocket
Websocket 是从 HTML 5 开始所提供的一种浏览器与服务器之间的全双工通信网络技术,与 即WebSocket 协议在 HTML 5 上的实施,该协议可在 TCP 连接上进行全双工通信,该协议在 2111 年由 IETF 开始标准化为 RFC6455
。
双工(duplex)
双工被分为 全双工(full-duplex) 或 半双工(half-duplex),其中半双工的系统允许两台设备之间的双向资料的传输(但不能同时进行),若另一方需要发送,则需要等先前发送的消息处理完成后即可发送。
全双工(full-duplex)即允许两台设备之间同时进行双向的消息传输。
频分双工(FDD,Frequency-Division Duplexing)通过频率分割多任务技术来分割发送和接收的信号,上传和下载区段之间所使用的 频率偏移(Frequency offset) 来分隔。
WebSocket 协议支持客户端之间的双向通信,在此之前,创建一个双向的 Web 应用程序客户端和服务器之间进行通信,需要通过 HTTP 论寻,同时以不同的方式发送上游通知 HTTP 调用。
于是一个更简单的解决方法就是单个 TCP 链接,两个方向的交通使用 WebSocket 协议进行提供,因此他代替了 HTTP 论寻的替代方法到远程服务器,实际上 WebSocket 协议旨在取代现有的使用 HTTP 作为传输的双向通信技术。
new WebSocket.Server
Server
Node 所提供的 ws
(WebSocket,ws),可通过 new WebSocket.Server
方法创建一个新的服务器实例,之后在通过其事件与方法来实现服务端。
1 | const WebSocket = require('ws') |
Client
1 | <!DOCTYPE html> |
之后可以在其服务端和客户端中查看到发送的消息,这主要通过 send
方法来进行发送,但前提条件是浏览器支持 WebSocket
方法才可适用。